home *** CD-ROM | disk | FTP | other *** search
- ; -*-Emacs-Lisp-*-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;
- ; File: dos-mode.el
- ; RCS: $Header: dos-mode.el,v 1.3 92/05/07 15:39:11 ange Exp $
- ; Description: MSDOS minor mode for GNU Emacs
- ; Author: Andy Norman, Hplabs
- ; Created: Wed May 6 16:42:29 1992
- ; Modified: Thu May 7 15:38:55 1992 (Ange) ange@anorman
- ; Language: Emacs-Lisp
- ;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (provide 'dos-mode)
-
- (defvar dos-mode-distance 200
- "Number of characters to search for RETURN when looking for a DOS file.")
-
- (defvar dos-mode nil
- "This buffer is to be converted to/from DOS format when read/written.")
-
- (make-variable-buffer-local 'dos-mode)
- (setq-default dos-mode nil)
-
- (or (assq 'dos-mode minor-mode-alist)
- (setq minor-mode-alist (cons '(dos-mode " DOS") minor-mode-alist)))
-
- (defun dos-convert-buffer ()
- "Converts the current buffer from DOS format to UNIX format."
- (if (or dos-mode
- (save-excursion
- (goto-char (point-min))
- (re-search-forward "\r\n"
- (min (point-max) dos-mode-distance)
- t)))
- (progn
- (let ((mod-p (buffer-modified-p))
- (buffer-read-only nil))
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward "\r" nil t)
- (replace-match "")))
- (set-buffer-modified-p mod-p)
- (setq dos-mode t)))))
-
- (defun dos-write-buffer ()
- "Write the buffer as a DOS format buffer."
- (if dos-mode
- (save-excursion
- (let ((buffer-read-only nil))
- (goto-char (point-min))
- (while (re-search-forward "\n" nil t)
- (replace-match "\r\n"))
- (unwind-protect
- (write-region (point-min)
- (point-max)
- buffer-file-name
- nil
- t)
- (dos-convert-buffer))) ;convert back again!
- t)))
-
- (or (memq 'dos-write-buffer write-file-hooks)
- (setq write-file-hooks
- (append write-file-hooks
- (list 'dos-write-buffer)))) ;stick it on the end
-
- (or (memq 'dos-convert-buffer find-file-hooks)
- (setq find-file-hooks
- (append find-file-hooks
- (list 'dos-convert-buffer))))
-
-